﻿/**
 * jQuery EasyUI 1.3.1
 * 
 * Licensed under the GPL terms To use it on other terms please contact us
 * 
 * Copyright(c) 2009-2012 stworthy [ stworthy@gmail.com ]
 * 
 */
(function($) {
	function _1(_2) {
		var _3 = $(_2).children("div.tabs-header");
		var _4 = 0;
		$("ul.tabs li", _3).each(function() {
					_4 += $(this).outerWidth(true);
				});
		var _5 = _3.children("div.tabs-wrap").width();
		var _6 = parseInt(_3.find("ul.tabs").css("padding-left"));
		return _4 - _5 + _6;
	};
	function _7(_8) {
		var _9 = $.data(_8, "tabs").options;
		var _a = $(_8).children("div.tabs-header");
		var _b = _a.children("div.tabs-tool");
		var _c = _a.children("div.tabs-scroller-left");
		var _d = _a.children("div.tabs-scroller-right");
		var _e = _a.children("div.tabs-wrap");
		_b._outerHeight(_a.outerHeight() - (_9.plain ? 2 : 0));
		var _f = 0;
		$("ul.tabs li", _a).each(function() {
					_f += $(this).outerWidth(true);
				});
		var _10 = _a.width() - _b._outerWidth();
		if (_f > _10) {
			_c.show();
			_d.show();
			_b.css("right", _d.outerWidth());
			_e.css({
						marginLeft : _c.outerWidth(),
						marginRight : _d.outerWidth() + _b._outerWidth(),
						left : 0,
						width : _10 - _c.outerWidth() - _d.outerWidth()
					});
		} else {
			_c.hide();
			_d.hide();
			_b.css("right", 0);
			_e.css({
						marginLeft : 0,
						marginRight : _b._outerWidth(),
						left : 0,
						width : _10
					});
			_e.scrollLeft(0);
		}
	};
	function _11(_12) {
		var _13 = $.data(_12, "tabs").options;
		var _14 = $(_12).children("div.tabs-header");
		if (_13.tools) {
			if (typeof _13.tools == "string") {
				$(_13.tools).addClass("tabs-tool").appendTo(_14);
				$(_13.tools).show();
			} else {
				_14.children("div.tabs-tool").remove();
				var _15 = $("<div class=\"tabs-tool\"></div>").appendTo(_14);
				for (var i = 0; i < _13.tools.length; i++) {
					var _16 = $("<a href=\"javascript:void(0);\"></a>")
							.appendTo(_15);
					_16[0].onclick = eval(_13.tools[i].handler || function() {
					});
					_16.linkbutton($.extend({}, _13.tools[i], {
								plain : true
							}));
				}
			}
		} else {
			_14.children("div.tabs-tool").remove();
		}
	};
	function _17(_18) {
		var _19 = $.data(_18, "tabs").options;
		var cc = $(_18);
		if (_19.fit == true) {
			var p = cc.parent();
			p.addClass("panel-noscroll");
			if (p[0].tagName == "BODY") {
				$("html").addClass("panel-fit");
			}
			_19.width = p.width();
			_19.height = p.height();
		}
		cc.width(_19.width).height(_19.height);
		var _1a = $(_18).children("div.tabs-header");
		_1a._outerWidth(_19.width);
		_7(_18);
		var _1b = $(_18).children("div.tabs-panels");
		var _1c = _19.height;
		if (!isNaN(_1c)) {
			_1b._outerHeight(_1c - _1a.outerHeight());
		} else {
			_1b.height("auto");
		}
		var _1d = _19.width;
		if (!isNaN(_1d)) {
			_1b._outerWidth(_1d);
		} else {
			_1b.width("auto");
		}
	};
	function _1e(_1f) {
		var _20 = $.data(_1f, "tabs").options;
		var tab = _21(_1f);
		if (tab) {
			var _22 = $(_1f).children("div.tabs-panels");
			var _23 = _20.width == "auto" ? "auto" : _22.width();
			var _24 = _20.height == "auto" ? "auto" : _22.height();
			tab.panel("resize", {
						width : _23,
						height : _24
					});
		}
	};
	function _25(_26) {
		var _27 = $.data(_26, "tabs").tabs;
		var cc = $(_26);
		cc.addClass("tabs-container");
		cc.wrapInner("<div class=\"tabs-panels\"/>");
		$("<div class=\"tabs-header\">"
				+ "<div class=\"tabs-scroller-left\"></div>"
				+ "<div class=\"tabs-scroller-right\"></div>"
				+ "<div class=\"tabs-wrap\">" + "<ul class=\"tabs\"></ul>"
				+ "</div>" + "</div>").prependTo(_26);
		cc.children("div.tabs-panels").children("div").each(function(i) {
			var _28 = $.extend({}, $.parser.parseOptions(this), {
						selected : ($(this).attr("selected") ? true : undefined)
					});
			var pp = $(this);
			_27.push(pp);
			_32(_26, pp, _28);
		});
		cc.children("div.tabs-header")
				.find(".tabs-scroller-left, .tabs-scroller-right").hover(
						function() {
							$(this).addClass("tabs-scroller-over");
						}, function() {
							$(this).removeClass("tabs-scroller-over");
						});
		cc.bind("_resize", function(e, _29) {
					var _2a = $.data(_26, "tabs").options;
					if (_2a.fit == true || _29) {
						_17(_26);
						_1e(_26);
					}
					return false;
				});
	};
	function _2b(_2c) {
		var _2d = $.data(_2c, "tabs").options;
		var _2e = $(_2c).children("div.tabs-header");
		var _2f = $(_2c).children("div.tabs-panels");
		if (_2d.plain == true) {
			_2e.addClass("tabs-header-plain");
		} else {
			_2e.removeClass("tabs-header-plain");
		}
		if (_2d.border == true) {
			_2e.removeClass("tabs-header-noborder");
			_2f.removeClass("tabs-panels-noborder");
		} else {
			_2e.addClass("tabs-header-noborder");
			_2f.addClass("tabs-panels-noborder");
		}
		$(".tabs-scroller-left", _2e).unbind(".tabs").bind("click.tabs",
				function() {
					var _30 = $(".tabs-wrap", _2e);
					var pos = _30.scrollLeft() - _2d.scrollIncrement;
					_30.animate({
								scrollLeft : pos
							}, _2d.scrollDuration);
				});
		$(".tabs-scroller-right", _2e).unbind(".tabs").bind("click.tabs",
				function() {
					var _31 = $(".tabs-wrap", _2e);
					var pos = Math.min(_31.scrollLeft() + _2d.scrollIncrement,
							_1(_2c));
					_31.animate({
								scrollLeft : pos
							}, _2d.scrollDuration);
				});
	};
	function _32(_33, pp, _34) {
		var _35 = $.data(_33, "tabs");
		_34 = _34 || {};
		pp.panel($.extend({}, _34, {
					border : false,
					noheader : true,
					closed : true,
					doSize : false,
					iconCls : (_34.icon ? _34.icon : undefined),
					onLoad : function() {
						if (_34.onLoad) {
							_34.onLoad.call(this, arguments);
						}
						_35.options.onLoad.call(_33, $(this));
					}
				}));
		var _36 = pp.panel("options");
		var _37 = $(_33).children("div.tabs-header").find("ul.tabs");
		_36.tab = $("<li></li>").appendTo(_37);
		_36.tab.append("<a href=\"javascript:void(0)\" class=\"tabs-inner\">"
				+ "<span class=\"tabs-title\"></span>"
				+ "<span class=\"tabs-icon\"></span>" + "</a>");
		_36.tab.unbind(".tabs").bind("click.tabs", {
					p : pp
				}, function(e) {
					if ($(this).hasClass("tabs-disabled")) {
						return;
					}
					_3f(_33, _38(_33, e.data.p));
				}).bind("contextmenu.tabs", {
					p : pp
				}, function(e) {
					if ($(this).hasClass("tabs-disabled")) {
						return;
					}
					_35.options.onContextMenu.call(_33, e, $(this)
									.find("span.tabs-title").html(), _38(_33,
									e.data.p));
				});
		_39(_33, {
					tab : pp,
					options : _36
				});
	};
	function _3a(_3b, _3c) {
		var _3d = $.data(_3b, "tabs").options;
		var _3e = $.data(_3b, "tabs").tabs;
		if (_3c.selected == undefined) {
			_3c.selected = true;
		}
		var pp = $("<div></div>").appendTo($(_3b).children("div.tabs-panels"));
		_3e.push(pp);
		_32(_3b, pp, _3c);
		_3d.onAdd.call(_3b, _3c.title, _3e.length - 1);
		_7(_3b);
		if (_3c.selected) {
			_3f(_3b, _3e.length - 1);
		}
	};
	function _39(_40, _41) {
		var _42 = $.data(_40, "tabs").selectHis;
		var pp = _41.tab;
		var _43 = pp.panel("options").title;
		pp.panel($.extend({}, _41.options, {
					iconCls : (_41.options.icon ? _41.options.icon : undefined)
				}));
		var _44 = pp.panel("options");
		var tab = _44.tab;
		var _45 = tab.find("span.tabs-title");
		var _46 = tab.find("span.tabs-icon");
		_45.html(_44.title);
		_46.attr("class", "tabs-icon");
		tab.find("a.tabs-close").remove();
		if (_44.closable) {
			_45.addClass("tabs-closable");
			var _47 = $("<a href=\"javascript:void(0)\" class=\"tabs-close\"></a>")
					.appendTo(tab);
			_47.bind("click.tabs", {
						p : pp
					}, function(e) {
						if ($(this).parent().hasClass("tabs-disabled")) {
							return;
						}
						_49(_40, _38(_40, e.data.p));
						return false;
					});
		} else {
			_45.removeClass("tabs-closable");
		}
		if (_44.iconCls) {
			_45.addClass("tabs-with-icon");
			_46.addClass(_44.iconCls);
		} else {
			_45.removeClass("tabs-with-icon");
		}
		if (_43 != _44.title) {
			for (var i = 0; i < _42.length; i++) {
				if (_42[i] == _43) {
					_42[i] = _44.title;
				}
			}
		}
		tab.find("span.tabs-p-tool").remove();
		if (_44.tools) {
			var _48 = $("<span class=\"tabs-p-tool\"></span>").insertAfter(tab
					.find("a.tabs-inner"));
			if (typeof _44.tools == "string") {
				$(_44.tools).children().appendTo(_48);
			} else {
				for (var i = 0; i < _44.tools.length; i++) {
					var t = $("<a href=\"javascript:void(0)\"></a>")
							.appendTo(_48);
					t.addClass(_44.tools[i].iconCls);
					if (_44.tools[i].handler) {
						t.bind("click", {
									handler : _44.tools[i].handler
								}, function(e) {
									if ($(this).parents("li")
											.hasClass("tabs-disabled")) {
										return;
									}
									e.data.handler.call(this);
								});
					}
				}
			}
			var pr = _48.children().length * 12;
			if (_44.closable) {
				pr += 8;
			} else {
				pr -= 3;
				_48.css("right", "5px");
			}
			_45.css("padding-right", pr + "px");
		}
		_7(_40);
		$.data(_40, "tabs").options.onUpdate.call(_40, _44.title, _38(_40, pp));
	};
	function _49(_4a, _4b) {
		var _4c = $.data(_4a, "tabs").options;
		var _4d = $.data(_4a, "tabs").tabs;
		var _4e = $.data(_4a, "tabs").selectHis;
		if (!_4f(_4a, _4b)) {
			return;
		}
		var tab = _50(_4a, _4b);
		var _51 = tab.panel("options").title;
		var _52 = _38(_4a, tab);
		if (_4c.onBeforeClose.call(_4a, _51, _52) == false) {
			return;
		}
		var tab = _50(_4a, _4b, true);
		tab.panel("options").tab.remove();
		tab.panel("destroy");
		_4c.onClose.call(_4a, _51, _52);
		_7(_4a);
		for (var i = 0; i < _4e.length; i++) {
			if (_4e[i] == _51) {
				_4e.splice(i, 1);
				i--;
			}
		}
		var _53 = _4e.pop();
		if (_53) {
			_3f(_4a, _53);
		} else {
			if (_4d.length) {
				_3f(_4a, 0);
			}
		}
	};
	function _50(_54, _55, _56) {
		var _57 = $.data(_54, "tabs").tabs;
		if (typeof _55 == "number") {
			if (_55 < 0 || _55 >= _57.length) {
				return null;
			} else {
				var tab = _57[_55];
				if (_56) {
					_57.splice(_55, 1);
				}
				return tab;
			}
		}
		for (var i = 0; i < _57.length; i++) {
			var tab = _57[i];
			if (tab.panel("options").title == _55) {
				if (_56) {
					_57.splice(i, 1);
				}
				return tab;
			}
		}
		return null;
	};
	function _38(_58, tab) {
		var _59 = $.data(_58, "tabs").tabs;
		for (var i = 0; i < _59.length; i++) {
			if (_59[i][0] == $(tab)[0]) {
				return i;
			}
		}
		return -1;
	};
	function _21(_5a) {
		var _5b = $.data(_5a, "tabs").tabs;
		for (var i = 0; i < _5b.length; i++) {
			var tab = _5b[i];
			if (tab.panel("options").closed == false) {
				return tab;
			}
		}
		return null;
	};
	function _5c(_5d) {
		var _5e = $.data(_5d, "tabs").tabs;
		for (var i = 0; i < _5e.length; i++) {
			if (_5e[i].panel("options").selected) {
				_3f(_5d, i);
				return;
			}
		}
		if (_5e.length) {
			_3f(_5d, 0);
		}
	};
	function _3f(_5f, _60) {
		var _61 = $.data(_5f, "tabs").options;
		var _62 = $.data(_5f, "tabs").tabs;
		var _63 = $.data(_5f, "tabs").selectHis;
		if (_62.length == 0) {
			return;
		}
		var _64 = _50(_5f, _60);
		if (!_64) {
			return;
		}
		var _65 = _21(_5f);
		if (_65) {
			_65.panel("close");
			_65.panel("options").tab.removeClass("tabs-selected");
		}
		_64.panel("open");
		var _66 = _64.panel("options").title;
		_63.push(_66);
		var tab = _64.panel("options").tab;
		tab.addClass("tabs-selected");
		var _67 = $(_5f).find(">div.tabs-header div.tabs-wrap");
		var _68 = tab.position().left + _67.scrollLeft();
		var _69 = _68 - _67.scrollLeft();
		var _6a = _69 + tab.outerWidth();
		if (_69 < 0 || _6a > _67.innerWidth()) {
			var pos = Math.min(_68 - (_67.width() - tab.width()) / 2, _1(_5f));
			_67.animate({
						scrollLeft : pos
					}, _61.scrollDuration);
		} else {
			var pos = Math.min(_67.scrollLeft(), _1(_5f));
			_67.animate({
						scrollLeft : pos
					}, _61.scrollDuration);
		}
		_1e(_5f);
		_61.onSelect.call(_5f, _66, _38(_5f, _64));
	};
	function _4f(_6b, _6c) {
		return _50(_6b, _6c) != null;
	};
	$.fn.tabs = function(_6d, _6e) {
		if (typeof _6d == "string") {
			return $.fn.tabs.methods[_6d](this, _6e);
		}
		_6d = _6d || {};
		return this.each(function() {
					var _6f = $.data(this, "tabs");
					var _70;
					if (_6f) {
						_70 = $.extend(_6f.options, _6d);
						_6f.options = _70;
					} else {
						$.data(this, "tabs", {
									options : $.extend({}, $.fn.tabs.defaults,
											$.fn.tabs.parseOptions(this), _6d),
									tabs : [],
									selectHis : []
								});
						_25(this);
					}
					_11(this);
					_2b(this);
					_17(this);
					_5c(this);
				});
	};
	$.fn.tabs.methods = {
		options : function(jq) {
			return $.data(jq[0], "tabs").options;
		},
		tabs : function(jq) {
			return $.data(jq[0], "tabs").tabs;
		},
		resize : function(jq) {
			return jq.each(function() {
						_17(this);
						_1e(this);
					});
		},
		add : function(jq, _71) {
			return jq.each(function() {
						_3a(this, _71);
					});
		},
		close : function(jq, _72) {
			return jq.each(function() {
						_49(this, _72);
					});
		},
		getTab : function(jq, _73) {
			return _50(jq[0], _73);
		},
		getTabIndex : function(jq, tab) {
			return _38(jq[0], tab);
		},
		getSelected : function(jq) {
			return _21(jq[0]);
		},
		select : function(jq, _74) {
			return jq.each(function() {
						_3f(this, _74);
					});
		},
		exists : function(jq, _75) {
			return _4f(jq[0], _75);
		},
		update : function(jq, _76) {
			return jq.each(function() {
						_39(this, _76);
					});
		},
		enableTab : function(jq, _77) {
			return jq.each(function() {
						$(this).tabs("getTab", _77).panel("options").tab
								.removeClass("tabs-disabled");
					});
		},
		disableTab : function(jq, _78) {
			return jq.each(function() {
						$(this).tabs("getTab", _78).panel("options").tab
								.addClass("tabs-disabled");
					});
		}
	};
	$.fn.tabs.parseOptions = function(_79) {
		return $.extend({}, $.parser.parseOptions(_79, ["width", "height",
								"tools", {
									fit : "boolean",
									border : "boolean",
									plain : "boolean"
								}]));
	};
	$.fn.tabs.defaults = {
		width : "auto",
		height : "auto",
		plain : false,
		fit : false,
		border : true,
		tools : null,
		scrollIncrement : 100,
		scrollDuration : 400,
		onLoad : function(_7a) {
		},
		onSelect : function(_7b, _7c) {
		},
		onBeforeClose : function(_7d, _7e) {
		},
		onClose : function(_7f, _80) {
		},
		onAdd : function(_81, _82) {
		},
		onUpdate : function(_83, _84) {
		},
		onContextMenu : function(e, _85, _86) {
		}
	};
})(jQuery);
